package com.heima.common;

import com.heima.utils.common.BCrypt;
import org.apache.commons.lang.RandomStringUtils;
import org.springframework.util.DigestUtils;

public class PasswordTest {

    public static void main1(String[] args) {
        //uername:zhangsan  password:123   salt:随时字符串
        String salt = RandomStringUtils.randomAlphanumeric(10);//获取一个10位的随机字符串
        System.out.println(salt);
        String pswd = "123" + salt;

        String saltPswd = DigestUtils.md5DigestAsHex(pswd.getBytes());
        System.out.println(saltPswd);
    }

    public static void main(String[] args) {
        //实现对密码的加密
        String gensalt = BCrypt.gensalt();//这个是盐  29个字符，随机生成
        System.out.println(gensalt);
        String password = BCrypt.hashpw("123456", gensalt);  //根据盐对密码进行加密
        System.out.println(password);//加密后的字符串前29位就是盐


        //实现对密码的校验。BCrypt不支持反运算，只支持密码校验。
        boolean checkpw = BCrypt.checkpw("123456", "$2a$10$nO2..0.3sbcfcWptUojv6e9aSo15qeywcjCI0Aaz.Hv2duodXSExu");
        System.out.println(checkpw);
    }
}
